
// 把key=value&key=value的格式转化为对象的格式
export function strToObj(str){
    if (!str) {
        return {}
    }
    let obj = {};
    let arr = str.split('&');
   
    arr.map(item=>{
        let i = item.split('=')
        obj[i[0]] = i[1];
    })
    return obj;
}

// 把对象转化为字符串
export function objToStr(obj){
    let str = '';
    for(let key in obj){
        str += `${key}=${obj[key]}&`
    }
    str = str.slice(0,-1);
    return str
}

// 封装验证 输入框是否都满足指定的条件
export function setSubmitState(formObj) {
    let val = Object.values(formObj);
    let res = val.every(item => {
        return item == true;
    })
    return res;
}

// 封装获取指定类名的元素(父级元素)
export function getTarget(ele,className){
    // 先判断本身这个元素是否拥有这个类名，有则把这个元素直接返回
    // 如果没有获取父元素来判断，如果其中一个父元素有该类名，则返回该父元素
    // 如果父级元素都不存在指定类名
    // 如果找到html这个元素还是不存在指定类名，那么就返回null
    if (ele.nodeName == 'HTML') {
        return null;
    }

    if(ele.classList.contains(className)){
        return ele;
    }
    return getTarget(ele.parentNode,className)
}

// 往nodeList 原型对象上添加removeClass的方法
export function removeClass(className) {
    this.forEach(item => {
        item.classList.remove(className)
    })
};